#include <stdio.h>

#define Debug

/*宏函数
//#define Max(x,y)    ((x) > (y) ? (x) : (y))
//#define Avg(x,y)    ((x & y) + (x ^ y) >> 2)  */
#define Func(x,y,z) ((x)+(y)*(z)) //定义宏函数时需要把每个变量都括起来，若是不加括号，则预处理完下面打印是：printf("%d\n",1+2 +3+4*5+6);

/*1.预处理：展开头文件、删除掉注释、定义的宏进行替换、条件编译处理（#ifdef...#endif）
    gcc -E -> .i    代码文件
    gcc -E gcc.c -o 1.i   */

/*2.编译：将C语言文件变成汇编语言文件
    gcc -S -> .s
    gcc -S 1.i -o 1.s   */

/*3.汇编：将汇编语言文件变成二进制文件
    gcc -c -> .o    目标文件
    gcc -c 1.s -o 1.o   */

/*4.链接：-> .out   可执行文件
    gcc
    gcc 1.o -o 1    */

// -o是链接符号

int main()
{
/*条件编译：
#ifdef Debug    //如果定义了Debug
    printf("%d\n",Max);
#endif  */
    int a = 10;
    int b = 20; 
    //printf("%d\n",Avg(a,b));
    printf("%d\n",Func(1+2,3+4,5+6));   
    return 0;
}